import pandas as pd
import numpy as np

# 读取CSV文件
def load_data(file_path):
    # 从CSV文件读取数据
    data = pd.read_csv(file_path)
    return data

# 计算特征的频率分布
def calculate_frequencies(data):
    # 统计每个特征的频率，比如：大小、单双、合大合小等
    frequencies = {}
    
    # 获取列名
    columns = data.columns[:-3]  # 最后几列是用于统计missCounts, sumCount, code，不用于特征频率
    for col in columns:
        freq = data[col].value_counts(normalize=True)  # 计算每列的频率
        frequencies[col] = freq
    return frequencies

# 预测下一期的特征概率（贝叶斯推断）
def predict_next(frequencies):
    predictions = {}
    
    for feature, freq in frequencies.items():
        # 通过历史数据频率作为先验概率
        prior = freq
        
        # 可以加入其他因素，更新后验概率
        # 假设我们不做进一步调整，直接使用先验概率来预测
        posterior = prior
        
        # 获取最可能出现的特征
        predictions[feature] = posterior.idxmax()  # 概率最大的作为预测结果
    return predictions

# 打印预测结果
def print_predictions(predictions):
    print("预测下一期的特征分布：")
    for feature, value in predictions.items():
        print(f"{feature}: {value}")

if __name__ == "__main__":
    # 替换成你CSV文件的路径
    file_path = "macaujc2.csv"
    
    # 加载数据
    data = load_data(file_path)
    
    # 计算频率分布
    frequencies = calculate_frequencies(data)
    
    # 预测下一期特征
    predictions = predict_next(frequencies)
    
    # 打印预测结果
    print_predictions(predictions)
